<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- whatsnew58.qdoc -->
  <title>What's New in Qt 5.8 | Qt 5.14</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt 5.14</a></td><td >What's New in Qt 5.8</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.14.2 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#new-features-in-qt-5-8">New Features in Qt 5.8</a></li>
<li class="level2"><a href="#qt-core-module">Qt Core Module</a></li>
<li class="level2"><a href="#qt-gui-module">Qt GUI Module</a></li>
<li class="level2"><a href="#qt-quick-module">Qt Quick Module</a></li>
<li class="level2"><a href="#qt-quick-controls-2-module">Qt Quick Controls 2 Module</a></li>
<li class="level2"><a href="#qt-webengine-module">Qt WebEngine Module</a></li>
<li class="level2"><a href="#qt-bluetooth-module">Qt Bluetooth Module</a></li>
<li class="level2"><a href="#qt-multimedia-module">Qt Multimedia Module</a></li>
<li class="level2"><a href="#qt-network-module">Qt Network Module</a></li>
<li class="level2"><a href="#qt-websockets-module">Qt WebSockets Module</a></li>
<li class="level2"><a href="#qt-charts-module">Qt Charts Module</a></li>
<li class="level2"><a href="#qt-3d-module">Qt 3D Module</a></li>
<li class="level2"><a href="#embedded-platforms">Embedded Platforms</a></li>
<li class="level2"><a href="#configurability-qt-lite-project">Configurability (Qt Lite Project)</a></li>
<li class="level1"><a href="#new-modules">New Modules</a></li>
<li class="level1"><a href="#technology-preview-modules">Technology Preview Modules</a></li>
<li class="level1"><a href="#deprecated-functionality">Deprecated Functionality</a></li>
<li class="level1"><a href="#removed-functionality">Removed Functionality</a></li>
<li class="level1"><a href="#list-of-api-changes">List of API Changes</a></li>
<li class="level1"><a href="#additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">What's New in Qt 5.8</h1>
<span class="subtitle"></span>
<!-- $$$whatsnew58.html-description -->
<div class="descr"> <a name="details"></a>
<a name="new-features-in-qt-5-8"></a>
<h2 id="new-features-in-qt-5-8">New Features in Qt 5.8</h2>
<a name="qt-core-module"></a>
<h3 id="qt-core-module">Qt Core Module</h3>
<ul>
<li>Added at(), operator[], mid(), right(), and left() functions to <a href="../qtcore/qlatin1string.html">QLatin1String</a>.</li>
</ul>
<a name="qt-gui-module"></a>
<h3 id="qt-gui-module">Qt GUI Module</h3>
<ul>
<li>Added <a href="../qtgui/qtouchevent-touchpoint.html#uniqueId">uniqueId()</a> and <a href="../qtgui/qtouchevent-touchpoint.html#rotation">rotation()</a> to <a href="../qtgui/qtouchevent.html">QTouchEvent</a>.</li>
<li>Added support for dithering when converting to all <a href="../qtgui/qimage.html">QImage</a> formats.</li>
<li>Made the <a href="../qtgui/qopengltextureblitter.html">QOpenGLTextureBlitter</a> API public; used particularly in Qt Wayland.</li>
<li>Added <a href="../qtgui/qfontmetrics.html#capHeight">capHeight()</a> to <a href="../qtgui/qfontmetrics.html">QFontMetrics</a>, <a href="../qtgui/qfontmetricsf.html">QFontMetricsF</a>, and <a href="../qtgui/qrawfont.html">QRawFont</a>.</li>
<li>Added selection handles on Android, with an edit menu for copy and paste.</li>
</ul>
<a name="qt-quick-module"></a>
<h3 id="qt-quick-module">Qt Quick Module</h3>
<ul>
<li>Refactored the Qt Quick scene graph to remove its OpenGL dependency, enabling backends based on other graphics APIs such as Vulkan or Direct3D.</li>
<li>Integrated the software renderer (previously known as the Qt Quick 2D Renderer) for Qt Quick as a proper scene graph backend.</li>
<li>Implemented support for partial updates in the software renderer.</li>
<li>Added an experimental Direct3D 12 backend.</li>
<li>Implemented caching of code and data structures generated from <code>.qml</code> and <code>.js</code> files to disk, reducing start-up time and memory consumption. The resulting <code>.qmlc</code> and <code>.jsc</code> cache files are memory mapped.</li>
<li>Cleaned up touch and mouse event delivery, and added a new internal class <code>QQuickPointerEvent</code> for this purpose.</li>
</ul>
<a name="qt-quick-controls-2-module"></a>
<h3 id="qt-quick-controls-2-module">Qt Quick Controls 2 Module</h3>
<ul>
<li>Added new QML types: <a href="../qtlabsplatform/qml-qt-labs-platform-dialog.html">Dialog</a>, <a href="../qtquickcontrols/qml-qtquick-controls2-dialogbuttonbox.html">DialogButtonBox</a>, <a href="../qtlabsplatform/qml-qt-labs-platform-menuseparator.html">MenuSeparator</a>, <a href="../qtquickcontrols/qml-qtquick-controls2-roundbutton.html">RoundButton</a>, and <a href="../qtquickcontrols/qml-qtquick-controls2-toolseparator.html">ToolSeparator</a>.</li>
<li>Added ripple effects to the Material style.</li>
<li>Added hover effects to Material and Universal styles</li>
<li>Added a <i>System</i> theme to Material and Universal styles</li>
<li>Added new experimental <i>platform</i> QML types: <code>MenuBar</code>, <code>Menu</code>, <code>SystemTrayIcon</code>, <code>ColorDialog</code>, <code>FontDialog</code>, <code>MessageDialog</code>, <code>FileDialog</code>, and <code>FolderDialog</code>.</li>
</ul>
<a name="qt-webengine-module"></a>
<h3 id="qt-webengine-module">Qt WebEngine Module</h3>
<ul>
<li>Based on Chromium 53.</li>
<li>Updated requirements to MSVC 2015 Update 2 or later on Windows.</li>
<li>Added <a href="../qtwebengine/qtwebengine-features.html#view-source">view-source</a> scheme support.</li>
<li>Added support for spellchecking with custom .bdic files.</li>
<li>Made tooltips (HTML5 global tile attribute) visible.</li>
<li>Added support for metadata (<code>@include</code>, <code>@exclude</code>, <code>@match</code>, <code>@name</code>, and <code>@run-at</code>) in user scripts.</li>
<li>QML: Enabled the use of custom dialogs and context menus.</li>
<li>QML: on eglfs, took the built-in dialogs based on Qt Quick Controls 2 into use.</li>
<li>Added support for printing.</li>
<li>Added a setting to enable printing of CSS backgrounds.</li>
</ul>
<a name="qt-bluetooth-module"></a>
<h3 id="qt-bluetooth-module">Qt Bluetooth Module</h3>
<ul>
<li>Added Bluetooth Low Energy Peripheral support on macOS, iOS, and WinRT.</li>
</ul>
<a name="qt-multimedia-module"></a>
<h3 id="qt-multimedia-module">Qt Multimedia Module</h3>
<ul>
<li>Added <a href="../qtmultimedia/qaudio.html#convertVolume">QAudio::convertVolume</a>() and a matching QML method to convert audio volumes from one scale to another; for example, from logarithmic to linear scale.</li>
<li>Added support for rendering YUV 4:2:2 (YUYV, UYVY) video frames to <a href="../qtmultimedia/qml-qtmultimedia-videooutput.html">VideoOutput</a> QML type.</li>
</ul>
<a name="qt-network-module"></a>
<h3 id="qt-network-module">Qt Network Module</h3>
<ul>
<li>Added support for TLS-PSK ciphersuites on server side.</li>
<li>Added support for configurable Diffie-Hellman parameters.</li>
<li>Added support for HTTP/2 in Network Access Manager.</li>
</ul>
<a name="qt-websockets-module"></a>
<h3 id="qt-websockets-module">Qt WebSockets Module</h3>
<ul>
<li>Added support for TLS-PSK ciphersuites on client and server side.</li>
</ul>
<a name="qt-charts-module"></a>
<h3 id="qt-charts-module">Qt Charts Module</h3>
<ul>
<li>Added a candlestick chart type.</li>
</ul>
<a name="qt-3d-module"></a>
<h3 id="qt-3d-module">Qt 3D Module</h3>
<ul>
<li>Focused on maturation: Bug fixes, improving performance and test coverage.</li>
<li>Added a <i>paint to texture</i> feature using <a href="../qtgui/qpainter.html">QPainter</a>.</li>
<li>Added optional support for issuing commands to Qt3D aspects (for example, from a profiler).</li>
</ul>
<a name="embedded-platforms"></a>
<h3 id="embedded-platforms">Embedded Platforms</h3>
<ul>
<li>Enhanced multi-screen capabilities and configurability with eglfs when running on KMS/DRM, both with GBM and EGLDevice/Stream.</li>
<li>Added support for 90 and 180 degrees rotation of software-rendered content (<a href="../qtwidgets/qwidget.html">QWidget</a>) in eglfs.</li>
</ul>
<a name="configurability-qt-lite-project"></a>
<h3 id="configurability-qt-lite-project">Configurability (Qt Lite Project)</h3>
<ul>
<li>Qt 5.8 comes with a rewritten configuration system that allows for easy customization of Qt builds. The main focus of this feature is for the Device Creation, but it can also be used to tailor a Qt build for mobile or desktop platforms. The new configuration system allows removing individual pieces of functionality and APIs from Qt, creating a more lightweight set of libraries for deployment.</li>
</ul>
<a name="new-modules"></a>
<h2 id="new-modules">New Modules</h2>
<ul>
<li><a href="license-changes.html#qt-wayland-compositor">Qt Wayland Compositor</a><ul>
<li>Provides a framework to develop a Wayland compositor.</li>
</ul>
</li>
<li><a href="../qtscxml/qtscxml-index.html">Qt SCXML</a><ul>
<li>Enables static and runtime integration of SCXML models into Qt code.</li>
</ul>
</li>
<li><a href="../qtserialbus/qtserialbus-index.html">Qt Serial Bus</a><ul>
<li>Provides access to various industrial serial buses and protocols, such as CAN and ModBus.</li>
</ul>
</li>
</ul>
<p>These modules were previously released as technology previews, and are now fully supported Qt add-on modules.</p>
<a name="technology-preview-modules"></a>
<h2 id="technology-preview-modules">Technology Preview Modules</h2>
<ul>
<li><a href="../qtgamepad/qtgamepad-index.html">Qt Gamepad</a><ul>
<li>Enables Qt gaming applications to respond to gamepad input.</li>
</ul>
</li>
<li><a href="../qtspeech/qtspeech-index.html">Qt Speech</a><ul>
<li>Text to speech and speech recognition functionality. Currently only the text to speech features are released. Includes backends for several speech synthesizers on Windows, Linux, macOS, and Android.</li>
</ul>
</li>
<li><a href="../qtnetworkauth/qtnetworkauth-index.html">Qt Network Authorization</a><ul>
<li>Online authorization support with OAuth protocol, versions 1 and 2.</li>
</ul>
</li>
</ul>
<a name="deprecated-functionality"></a>
<h2 id="deprecated-functionality">Deprecated Functionality</h2>
<ul>
<li>Qt Script</li>
</ul>
<p>Deprecated modules are still included in Qt 5.8, but are considered for removal in future releases.</p>
<a name="removed-functionality"></a>
<h2 id="removed-functionality">Removed Functionality</h2>
<ul>
<li>Qt Quick 2D Renderer (functionality has been merged into Qt Quick).</li>
</ul>
<a name="list-of-api-changes"></a>
<h2 id="list-of-api-changes">List of API Changes</h2>
<p>The pages below contain a list of API changes in Qt 5.8:</p>
<ul>
<li><a href="newclasses58.html">New Classes and Functions in Qt 5.8</a></li>
<li><a href="obsoleteclasses.html">Obsolete Classes</a></li>
</ul>
<a name="additions-to-other-qt-5-releases"></a>
<h2 id="additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</h2>
<ul>
<li><a href="whatsnew57.html">What's New in Qt 5.7</a></li>
<li><a href="whatsnew56.html">What's New in Qt 5.6</a></li>
<li><a href="whatsnew55.html">What's New in Qt 5.5</a></li>
<li><a href="whatsnew54.html">What's New in Qt 5.4</a></li>
<li><a href="whatsnew53.html">What's New in Qt 5.3</a></li>
<li><a href="whatsnew52.html">What's New in Qt 5.2</a></li>
<li><a href="whatsnew51.html">What's New in Qt 5.1</a></li>
<li><a href="whatsnew50.html">What's New in Qt 5.0</a></li>
</ul>
</div>
<!-- @@@whatsnew58.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
